import type { PageParam, PageResult } from '@vben/request';

import { requestClient } from '#/api/request';

export namespace CmtNotifyNoticeApi {
  /** 公告信息 */
  export interface NotifyNotice {
    id?: number; // ID
    communityId?: number; // 社区ID
    merchantId?: number; // 商户ID
    title?: string; // 标题
    content?: string; // 内容
    coverImage?: string; // 封面图片
    noticeType?: number; // 公告类型：1通知 2公示 3政策
    isTop?: number; // 是否置顶：0否 1是
    viewCount?: number; // 浏览次数
    publishTime?: string; // 发布时间
    sort?: number; // 排序
    createTime?: string; // 创建时间
  }
}

/** 查询公告分页 */
export function getNotifyNoticePage(params: PageParam) {
  return requestClient.get<PageResult<CmtNotifyNoticeApi.NotifyNotice>>(
    '/cmt/notify-notice/page',
    { params },
  );
}

/** 查询公告详情 */
export function getNotifyNotice(id: number) {
  return requestClient.get<CmtNotifyNoticeApi.NotifyNotice>(
    `/cmt/notify-notice/get?id=${id}`,
  );
}

/** 新增公告 */
export function createNotifyNotice(data: CmtNotifyNoticeApi.NotifyNotice) {
  return requestClient.post('/cmt/notify-notice/create', data);
}

/** 修改公告 */
export function updateNotifyNotice(data: CmtNotifyNoticeApi.NotifyNotice) {
  return requestClient.put('/cmt/notify-notice/update', data);
}

/** 删除公告 */
export function deleteNotifyNotice(id: number) {
  return requestClient.delete(`/cmt/notify-notice/delete?id=${id}`);
}

/** 批量删除公告 */
export function deleteNotifyNoticeList(ids: number[]) {
  return requestClient.delete(
    `/cmt/notify-notice/delete-list?ids=${ids.join(',')}`,
  );
}

/** 导出公告 */
export function exportNotifyNotice(params: any) {
  return requestClient.download('/cmt/notify-notice/export-excel', { params });
}
